package wellness.activities.data;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;
import android.util.Log;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

import wellness.activities.beans.AtividadeBean;
import wellness.activities.beans.LoadBeans;

public class AtividadeData {

	private static String TABLE_NAME = "Atividade";

	private Context context;
	private SQLiteDatabase db;

	private SQLiteStatement insertStmt;
	private static final String INSERT = "insert into "
			+ TABLE_NAME
			+ "(ATIV_NOME, ATIV_TIPO, ATIV_GOSTO, ATIV_DURACAO_MIN, ATIV_DURACAO_MAX, ATIV_REMOVIDO) values (?, ?, ?, ?, ?, ?)";

	public AtividadeData(Context context) {
		this.context = context;
	}

	public long insert(AtividadeBean a) {
		this.db = DataBase.getDB(this.context);
		this.insertStmt = this.db.compileStatement(INSERT);
		this.insertStmt.bindString(1, a.getNome());
		this.insertStmt.bindString(2, a.getTipo());
		this.insertStmt.bindLong(3, 1);
		this.insertStmt.bindLong(4, a.getDuracaoMinima());
		this.insertStmt.bindLong(5, a.getDuracaoMaxima());
		this.insertStmt.bindLong(6, 0);
		long c = this.insertStmt.executeInsert();
		this.selectAll();
		return c;
	}

	public int delete(Integer ATIV_ID) {
		this.db = DataBase.getDB(this.context);
		ContentValues v = new ContentValues();
		v.put("ATIV_REMOVIDO", 1);
		int i = this.db.update(TABLE_NAME, v, "ATIV_ID = ?",
				new String[] { ATIV_ID.toString() });
		DataBase.closeDB();
		return i;
	}

	public int gosta(Integer ATIV_ID, boolean ATIV_GOSTA) {
		this.db = DataBase.getDB(this.context);
		ContentValues v = new ContentValues();
		v.put("ATIV_GOSTO", ATIV_GOSTA ? 1 : 0);
		int i = this.db.update(TABLE_NAME, v, "ATIV_ID = ?",
				new String[] { ATIV_ID.toString() });
		DataBase.closeDB();
		return i;
	}

	public void selectAll() {
		this.db = DataBase.getDB(this.context);
		LoadBeans.atividades = new ArrayList<AtividadeBean>();
		Cursor cursor = this.db
				.query(TABLE_NAME,
						new String[] { "ATIV_ID, ATIV_NOME, ATIV_GOSTO, ATIV_TIPO,  ATIV_DURACAO_MIN,  ATIV_DURACAO_MAX, ATIV_REMOVIDO" },
						null, null, null, null, "ATIV_NOME ASC");
		if (cursor.moveToFirst()) {
			do {
				AtividadeBean atividade = new AtividadeBean(cursor.getInt(0),
						cursor.getString(1), cursor.getInt(2),
						cursor.getString(3), cursor.getInt(4),
						cursor.getInt(5), cursor.getInt(6));
				LoadBeans.getAtividades().add(atividade);
			} while (cursor.moveToNext());
		}
		if (cursor != null) {
			cursor.close();
		}
		DataBase.closeDB();
	}
}